home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Foxpro 2.6 {Windows} / APPSRCH.PR_ / APPSRCH.bin
Text File  |  1994-03-10  |  38KB  |  1,144 lines

  1. *       ╓─────────────────────────────────────────────────────────╖
  2. *       ║                                                         ║
  3. *       ║ 02/09/94             APPSRCH.SPR               22:22:31 ║
  4. *       ║                                                         ║
  5. *       ╟─────────────────────────────────────────────────────────╢
  6. *       ║                                                         ║
  7. *       ║ Author's Name                                           ║
  8. *       ║                                                         ║
  9. *       ║ Copyright (c) 1994 Company Name                         ║
  10. *       ║ Address                                                 ║
  11. *       ║ City,     Zip                                           ║
  12. *       ║                                                         ║
  13. *       ║ Description:                                            ║
  14. *       ║ This program was automatically generated by GENSCRN.    ║
  15. *       ║                                                         ║
  16. *       ╙─────────────────────────────────────────────────────────╜
  17.  
  18. DO CASE
  19. CASE _DOS OR _UNIX      && no UNIX records in screen
  20.  
  21.     
  22.     #REGION 0
  23.     REGIONAL m.currarea, m.talkstat, m.compstat
  24.     
  25.     IF SET("TALK") = "ON"
  26.         SET TALK OFF
  27.         m.talkstat = "ON"
  28.     ELSE
  29.         m.talkstat = "OFF"
  30.     ENDIF
  31.     m.compstat = SET("COMPATIBLE")
  32.     SET COMPATIBLE FOXPLUS
  33.     
  34.     *       ╓─────────────────────────────────────────────────────────╖
  35.     *       ║                                                         ║
  36.     *       ║                MS-DOS Window definitions                ║
  37.     *       ║                                                         ║
  38.     *       ╙─────────────────────────────────────────────────────────╜
  39.     *
  40.     
  41.     IF NOT WEXIST("_qne1byi4x")
  42.         DEFINE WINDOW _qne1byi4x ;
  43.             FROM INT((SROW()-7)/2),INT((SCOL()-55)/2) ;
  44.             TO INT((SROW()-7)/2)+6,INT((SCOL()-55)/2)+54 ;
  45.             TITLE " Search for: " ;
  46.             FLOAT ;
  47.             NOCLOSE ;
  48.             SHADOW ;
  49.             NOMINIMIZE ;
  50.             DOUBLE ;
  51.             COLOR SCHEME 5
  52.     ENDIF
  53.     
  54.     
  55.     *       ╓─────────────────────────────────────────────────────────╖
  56.     *       ║                                                         ║
  57.     *       ║          APPSRCH/MS-DOS Setup Code - SECTION 2          ║
  58.     *       ║                                                         ║
  59.     *       ╙─────────────────────────────────────────────────────────╜
  60.     *
  61.     
  62.     #REGION 1
  63.     IF TYPE("srchterm") $ "UL" OR EMPTY(m.srchterm)
  64.        m.srchterm = SPACE(60)
  65.     ENDIF
  66.     m.oksrch = 1
  67.     m.fldnum = 0
  68.     
  69.     DIMENSION fldarry(10,4)   && default dimensions.  AFIELDS will reset if necessary.
  70.     m.fldcnt = AFIELDS(fldarry)
  71.     m.startord = ORDER()
  72.     m.startalias = ALIAS()
  73.     
  74.     m.curord = ORDER()
  75.     IF EMPTY(m.curord)
  76.        SET ORDER TO 1
  77.        m.curord = ORDER()
  78.     ENDIF
  79.     
  80.     FOR i = 1 TO FCOUNT()
  81.        IF FIELDS(i) == m.curord
  82.           m.fldnum = i
  83.        ENDIF
  84.     ENDFOR
  85.     
  86.     IF m.fldnum > 0
  87.        m.fldname = FIELDS(m.fldnum)
  88.     ELSE
  89.        SET ORDER TO 1
  90.        m.fldnum  = 1
  91.        m.fldname = FIELDS(1)
  92.     ENDIF
  93.     
  94.     skipvar = .T.
  95.     
  96.     curs_stat = (UPPER(SET("CURSOR")) = "ON")
  97.     SET CURSOR ON
  98.     
  99.     
  100.     *       ╓─────────────────────────────────────────────────────────╖
  101.     *       ║                                                         ║
  102.     *       ║              APPSRCH/MS-DOS Screen Layout               ║
  103.     *       ║                                                         ║
  104.     *       ╙─────────────────────────────────────────────────────────╜
  105.     *
  106.     
  107.     #REGION 1
  108.     IF WVISIBLE("_qne1byi4x")
  109.         ACTIVATE WINDOW _qne1byi4x SAME
  110.     ELSE
  111.         ACTIVATE WINDOW _qne1byi4x NOSHOW
  112.     ENDIF
  113.     @ 3,2 SAY "In Field:" ;
  114.         SIZE 1,9, 0
  115.     @ 1,12 GET m.srchterm ;
  116.         SIZE 1,26 ;
  117.         DEFAULT " " ;
  118.         PICTURE "@3S60" ;
  119.         WHEN _qne1byj00()
  120.     @ 2,12 GET fldnum ;
  121.         PICTURE "@^" ;
  122.         FROM fldarry ;
  123.         SIZE 3,27 ;
  124.         DEFAULT 1 ;
  125.         VALID _qne1byj3f() ;
  126.         COLOR SCHEME 5, 6
  127.     @ 1,41 GET oksrch ;
  128.         PICTURE "@*VN \!OK;\?Cancel" ;
  129.         SIZE 1,10,1 ;
  130.         DEFAULT 1 ;
  131.         VALID _qne1byj6u()
  132.     @ 1,6 SAY "Find:" ;
  133.         SIZE 1,5, 0 ;
  134.         COLOR N+/W    
  135.     
  136.     IF NOT WVISIBLE("_qne1byi4x")
  137.         ACTIVATE WINDOW _qne1byi4x
  138.     ENDIF
  139.     
  140.     
  141.     *       ╓─────────────────────────────────────────────────────────╖
  142.     *       ║                                                         ║
  143.     *       ║     MS-DOSREAD contains clauses from SCREEN appsrch     ║
  144.     *       ║                                                         ║
  145.     *       ╙─────────────────────────────────────────────────────────╜
  146.     *
  147.     
  148.     READ CYCLE ;
  149.         ACTIVATE _qne1byk44() ;
  150.         DEACTIVATE _qne1byk48() ;
  151.         MODAL
  152.     
  153.     RELEASE WINDOW _qne1byi4x
  154.     
  155.     #REGION 0
  156.     IF m.talkstat = "ON"
  157.         SET TALK ON
  158.     ENDIF
  159.     IF m.compstat = "ON"
  160.         SET COMPATIBLE ON
  161.     ENDIF
  162.     
  163.     
  164.     *       ╓─────────────────────────────────────────────────────────╖
  165.     *       ║                                                         ║
  166.     *       ║               APPSRCH/MS-DOS Cleanup Code               ║
  167.     *       ║                                                         ║
  168.     *       ╙─────────────────────────────────────────────────────────╜
  169.     *
  170.     
  171.     #REGION 1
  172.     IF m.curs_stat
  173.        SET CURSOR ON
  174.     ELSE
  175.        SET CURSOR OFF
  176.     ENDIF
  177.     m.skipvar = .F.
  178.     
  179.  
  180. CASE _MAC
  181.  
  182.     
  183.     #REGION 0
  184.     REGIONAL m.currarea, m.talkstat, m.compstat
  185.     
  186.     IF SET("TALK") = "ON"
  187.         SET TALK OFF
  188.         m.talkstat = "ON"
  189.     ELSE
  190.         m.talkstat = "OFF"
  191.     ENDIF
  192.     m.compstat = SET("COMPATIBLE")
  193.     SET COMPATIBLE FOXPLUS
  194.     
  195.     m.rborder = SET("READBORDER")
  196.     SET READBORDER OFF
  197.     
  198.     *       ╓─────────────────────────────────────────────────────────╖
  199.     *       ║                                                         ║
  200.     *       ║              Macintosh Window definitions               ║
  201.     *       ║                                                         ║
  202.     *       ╙─────────────────────────────────────────────────────────╜
  203.     *
  204.     
  205.     IF NOT WEXIST("_qne1bykja")
  206.         DEFINE WINDOW _qne1bykja ;
  207.             AT  0.000, 0.000  ;
  208.             SIZE 5.750,56.500 ;
  209.             TITLE " Search for: " ;
  210.             FONT "Geneva", 10 ;
  211.             FLOAT ;
  212.             NOCLOSE ;
  213.             SHADOW ;
  214.             DOUBLE
  215.         MOVE WINDOW _qne1bykja CENTER
  216.     ENDIF
  217.     
  218.     
  219.     *       ╓─────────────────────────────────────────────────────────╖
  220.     *       ║                                                         ║
  221.     *       ║        APPSRCH/Macintosh Setup Code - SECTION 2         ║
  222.     *       ║                                                         ║
  223.     *       ╙─────────────────────────────────────────────────────────╜
  224.     *
  225.     
  226.     #REGION 1
  227.     IF TYPE("srchterm") $ "UL" OR EMPTY(m.srchterm)
  228.        m.srchterm = SPACE(60)
  229.     ENDIF
  230.     m.oksrch = 1
  231.     m.fldnum = 0
  232.     
  233.     DIMENSION fldarry(10,4)   && default dimensions.  AFIELDS will reset if necessary.
  234.     m.fldcnt = AFIELDS(fldarry)
  235.     m.startord = ORDER()
  236.     m.startalias = ALIAS()
  237.     
  238.     m.curord = ORDER()
  239.     IF EMPTY(m.curord)
  240.        SET ORDER TO 1
  241.        m.curord = ORDER()
  242.     ENDIF
  243.     
  244.     FOR i = 1 TO FCOUNT()
  245.        IF FIELDS(i) == m.curord
  246.           m.fldnum = i
  247.        ENDIF
  248.     ENDFOR
  249.     
  250.     IF m.fldnum > 0
  251.        m.fldname = FIELDS(m.fldnum)
  252.     ELSE
  253.        SET ORDER TO 1
  254.        m.fldnum  = 1
  255.        m.fldname = FIELDS(1)
  256.     ENDIF
  257.     
  258.     skipvar = .T.
  259.     
  260.     curs_stat = (UPPER(SET("CURSOR")) = "ON")
  261.     SET CURSOR ON
  262.     
  263.     
  264.     *       ╓─────────────────────────────────────────────────────────╖
  265.     *       ║                                                         ║
  266.     *       ║             APPSRCH/Macintosh Screen Layout             ║
  267.     *       ║                                                         ║
  268.     *       ╙─────────────────────────────────────────────────────────╜
  269.     *
  270.     
  271.     #REGION 1
  272.     IF WVISIBLE("_qne1bykja")
  273.         ACTIVATE WINDOW _qne1bykja SAME
  274.     ELSE
  275.         ACTIVATE WINDOW _qne1bykja NOSHOW
  276.     ENDIF
  277.     @ 3.500,1.833 SAY "In Field:"  ;
  278.         FONT "Geneva", 10
  279.     @ 1.333,11.500 GET m.srchterm ;
  280.         SIZE 1.000,26.333 ;
  281.         DEFAULT " " ;
  282.         FONT "Geneva", 10 ;
  283.         PICTURE "@3S60" ;
  284.         WHEN _qne1byl58()
  285.     @ 3.250,11.167 GET fldnum ;
  286.         PICTURE "@^3" ;
  287.         FROM fldarry ;
  288.         SIZE 1.500,27.000 ;
  289.         DEFAULT 1 ;
  290.         FONT "Geneva", 10 ;
  291.         VALID _qne1bylal()
  292.     @ 1.333,42.333 GET oksrch ;
  293.         PICTURE "@*VN3 \!OK;\?Cancel" ;
  294.         SIZE 1.500,10.000,0.500 ;
  295.         DEFAULT 1 ;
  296.         FONT "Geneva", 10 ;
  297.         STYLE "B" ;
  298.         VALID _qne1bylha()
  299.     @ 1.250,1.833 SAY "Find:"  ;
  300.         FONT "Geneva", 10 ;
  301.         STYLE "T" ;
  302.         COLOR RGB(0,0,0,255,255,255)
  303.     
  304.     IF NOT WVISIBLE("_qne1bykja")
  305.         ACTIVATE WINDOW _qne1bykja
  306.     ENDIF
  307.     
  308.     
  309.     *       ╓─────────────────────────────────────────────────────────╖
  310.     *       ║                                                         ║
  311.     *       ║   MacintoshREAD contains clauses from SCREEN appsrch    ║
  312.     *       ║                                                         ║
  313.     *       ╙─────────────────────────────────────────────────────────╜
  314.     *
  315.     
  316.     READ CYCLE ;
  317.         ACTIVATE _qne1bylyd() ;
  318.         DEACTIVATE _qne1bylyg() ;
  319.         MODAL
  320.     
  321.     RELEASE WINDOW _qne1bykja
  322.     
  323.     #REGION 0
  324.     
  325.     SET READBORDER &rborder
  326.     
  327.     IF m.talkstat = "ON"
  328.         SET TALK ON
  329.     ENDIF
  330.     IF m.compstat = "ON"
  331.         SET COMPATIBLE ON
  332.     ENDIF
  333.     
  334.     
  335.     *       ╓─────────────────────────────────────────────────────────╖
  336.     *       ║                                                         ║
  337.     *       ║             APPSRCH/Macintosh Cleanup Code              ║
  338.     *       ║                                                         ║
  339.     *       ╙─────────────────────────────────────────────────────────╜
  340.     *
  341.     
  342.     #REGION 1
  343.     IF m.curs_stat
  344.        SET CURSOR ON
  345.     ELSE
  346.        SET CURSOR OFF
  347.     ENDIF
  348.     m.skipvar = .F.
  349.     
  350.  
  351. CASE _WINDOWS
  352.  
  353.     
  354.     #REGION 0
  355.     REGIONAL m.currarea, m.talkstat, m.compstat
  356.     
  357.     IF SET("TALK") = "ON"
  358.         SET TALK OFF
  359.         m.talkstat = "ON"
  360.     ELSE
  361.         m.talkstat = "OFF"
  362.     ENDIF
  363.     m.compstat = SET("COMPATIBLE")
  364.     SET COMPATIBLE FOXPLUS
  365.     
  366.     m.rborder = SET("READBORDER")
  367.     SET READBORDER OFF
  368.     
  369.     *       ╓─────────────────────────────────────────────────────────╖
  370.     *       ║                                                         ║
  371.     *       ║               Windows Window definitions                ║
  372.     *       ║                                                         ║
  373.     *       ╙─────────────────────────────────────────────────────────╜
  374.     *
  375.     
  376.     IF NOT WEXIST("_qne1bymgx")
  377.         DEFINE WINDOW _qne1bymgx ;
  378.             AT  0.000, 0.000  ;
  379.             SIZE 5.769,56.500 ;
  380.             TITLE " Search for: " ;
  381.             FONT "MS Sans Serif", 8 ;
  382.             STYLE "B" ;
  383.             FLOAT ;
  384.             NOCLOSE ;
  385.             SHADOW ;
  386.             NOMINIMIZE ;
  387.             DOUBLE ;
  388.             COLOR RGB(,,,192,192,192)
  389.         MOVE WINDOW _qne1bymgx CENTER
  390.     ENDIF
  391.     
  392.     
  393.     *       ╓─────────────────────────────────────────────────────────╖
  394.     *       ║                                                         ║
  395.     *       ║         APPSRCH/Windows Setup Code - SECTION 2          ║
  396.     *       ║                                                         ║
  397.     *       ╙─────────────────────────────────────────────────────────╜
  398.     *
  399.     
  400.     #REGION 1
  401.     IF TYPE("srchterm") $ "UL" OR EMPTY(m.srchterm)
  402.        m.srchterm = SPACE(60)
  403.     ENDIF
  404.     m.oksrch = 1
  405.     m.fldnum = 0
  406.     
  407.     DIMENSION fldarry(10,4)   && default dimensions.  AFIELDS will reset if necessary.
  408.     m.fldcnt = AFIELDS(fldarry)
  409.     m.startord = ORDER()
  410.     m.startalias = ALIAS()
  411.     
  412.     m.curord = ORDER()
  413.     IF EMPTY(m.curord)
  414.        SET ORDER TO 1
  415.        m.curord = ORDER()
  416.     ENDIF
  417.     
  418.     FOR i = 1 TO FCOUNT()
  419.        IF FIELDS(i) == m.curord
  420.           m.fldnum = i
  421.        ENDIF
  422.     ENDFOR
  423.     
  424.     IF m.fldnum > 0
  425.        m.fldname = FIELDS(m.fldnum)
  426.     ELSE
  427.        SET ORDER TO 1
  428.        m.fldnum  = 1
  429.        m.fldname = FIELDS(1)
  430.     ENDIF
  431.     
  432.     skipvar = .T.
  433.     
  434.     curs_stat = (UPPER(SET("CURSOR")) = "ON")
  435.     SET CURSOR ON
  436.     
  437.     
  438.     *       ╓─────────────────────────────────────────────────────────╖
  439.     *       ║                                                         ║
  440.     *       ║              APPSRCH/Windows Screen Layout              ║
  441.     *       ║                                                         ║
  442.     *       ╙─────────────────────────────────────────────────────────╜
  443.     *
  444.     
  445.     #REGION 1
  446.     IF WVISIBLE("_qne1bymgx")
  447.         ACTIVATE WINDOW _qne1bymgx SAME
  448.     ELSE
  449.         ACTIVATE WINDOW _qne1bymgx NOSHOW
  450.     ENDIF
  451.     @ 3.462,1.833 SAY "In Field:"  ;
  452.         FONT "MS Sans Serif", 8 ;
  453.         STYLE "B"
  454.     @ 1.231,11.500 GET m.srchterm ;
  455.         SIZE 1.000,26.333 ;
  456.         DEFAULT " " ;
  457.         FONT "MS Sans Serif", 8 ;
  458.         STYLE "B" ;
  459.         PICTURE "@3S60" ;
  460.         WHEN _qne1bynbu()
  461.     @ 3.154,11.167 GET fldnum ;
  462.         PICTURE "@^" ;
  463.         FROM fldarry ;
  464.         SIZE 1.538,27.000 ;
  465.         DEFAULT 1 ;
  466.         FONT "MS Sans Serif", 8 ;
  467.         VALID _qne1bynea()
  468.     @ 1.154,42.333 GET oksrch ;
  469.         PICTURE "@*VN \!\<OK;\?\<Cancel" ;
  470.         SIZE 1.462,10.000,0.538 ;
  471.         DEFAULT 1 ;
  472.         FONT "MS Sans Serif", 8 ;
  473.         STYLE "B" ;
  474.         VALID _qne1bynlf()
  475.     @ 1.154,1.833 SAY "Find:"  ;
  476.         FONT "MS Sans Serif", 8 ;
  477.         STYLE "BT" ;
  478.         COLOR RGB(0,0,0,255,255,255)
  479.     
  480.     IF NOT WVISIBLE("_qne1bymgx")
  481.         ACTIVATE WINDOW _qne1bymgx
  482.     ENDIF
  483.     
  484.     
  485.     *       ╓─────────────────────────────────────────────────────────╖
  486.     *       ║                                                         ║
  487.     *       ║    WindowsREAD contains clauses from SCREEN appsrch     ║
  488.     *       ║                                                         ║
  489.     *       ╙─────────────────────────────────────────────────────────╜
  490.     *
  491.     
  492.     READ CYCLE ;
  493.         ACTIVATE _qne1byo2l() ;
  494.         DEACTIVATE _qne1byo2q() ;
  495.         MODAL
  496.     
  497.     RELEASE WINDOW _qne1bymgx
  498.     
  499.     #REGION 0
  500.     
  501.     SET READBORDER &rborder
  502.     
  503.     IF m.talkstat = "ON"
  504.         SET TALK ON
  505.     ENDIF
  506.     IF m.compstat = "ON"
  507.         SET COMPATIBLE ON
  508.     ENDIF
  509.     
  510.     
  511.     *       ╓─────────────────────────────────────────────────────────╖
  512.     *       ║                                                         ║
  513.     *       ║              APPSRCH/Windows Cleanup Code               ║
  514.     *       ║                                                         ║
  515.     *       ╙─────────────────────────────────────────────────────────╜
  516.     *
  517.     
  518.     #REGION 1
  519.     IF m.curs_stat
  520.        SET CURSOR ON
  521.     ELSE
  522.        SET CURSOR OFF
  523.     ENDIF
  524.     m.skipvar = .F.
  525.     
  526.  
  527. ENDCASE
  528.  
  529.  
  530. *       ╓─────────────────────────────────────────────────────────╖
  531. *       ║                                                         ║
  532. *       ║ _QNE1BYJ00           m.srchterm WHEN                    ║
  533. *       ║                                                         ║
  534. *       ║ Function Origin:                                        ║
  535. *       ║                                                         ║
  536. *       ║ From Platform:       MS-DOS                             ║
  537. *       ║ From Screen:         APPSRCH,     Record Number:   11   ║
  538. *       ║ Variable:            m.srchterm                         ║
  539. *       ║ Called By:           WHEN Clause                        ║
  540. *       ║ Object Type:         Field                              ║
  541. *       ║ Snippet Number:      1                                  ║
  542. *       ║                                                         ║
  543. *       ╙─────────────────────────────────────────────────────────╜
  544. *
  545. FUNCTION _qne1byj00     &&  m.srchterm WHEN
  546. #REGION 1
  547. m.srchterm = PADR(m.srchterm,60)
  548. SHOW GETS
  549.  
  550.  
  551. *       ╓─────────────────────────────────────────────────────────╖
  552. *       ║                                                         ║
  553. *       ║ _QNE1BYJ3F           fldnum VALID                       ║
  554. *       ║                                                         ║
  555. *       ║ Function Origin:                                        ║
  556. *       ║                                                         ║
  557. *       ║ From Platform:       MS-DOS                             ║
  558. *       ║ From Screen:         APPSRCH,     Record Number:   12   ║
  559. *       ║ Variable:            fldnum                             ║
  560. *       ║ Called By:           VALID Clause                       ║
  561. *       ║ Object Type:         Popup                              ║
  562. *       ║ Snippet Number:      2                                  ║
  563. *       ║                                                         ║
  564. *       ╙─────────────────────────────────────────────────────────╜
  565. *
  566. FUNCTION _qne1byj3f     &&  fldnum VALID
  567. #REGION 1
  568. m.fldname = FIELDS(m.fldnum)
  569. tagnum = gettag(m.fldname)     && tag number of tag with name fldname
  570.  
  571. IF tagnum > 0
  572.    SET ORDER TO TAG(m.tagnum)
  573. ELSE
  574.    SET ORDER TO 0
  575. ENDIF
  576. SHOW GETS
  577.  
  578.  
  579. *       ╓─────────────────────────────────────────────────────────╖
  580. *       ║                                                         ║
  581. *       ║ _QNE1BYJ6U           oksrch VALID                       ║
  582. *       ║                                                         ║
  583. *       ║ Function Origin:                                        ║
  584. *       ║                                                         ║
  585. *       ║ From Platform:       MS-DOS                             ║
  586. *       ║ From Screen:         APPSRCH,     Record Number:   13   ║
  587. *       ║ Variable:            oksrch                             ║
  588. *       ║ Called By:           VALID Clause                       ║
  589. *       ║ Object Type:         Push Button                        ║
  590. *       ║ Snippet Number:      3                                  ║
  591. *       ║                                                         ║
  592. *       ╙─────────────────────────────────────────────────────────╜
  593. *
  594. FUNCTION _qne1byj6u     &&  oksrch VALID
  595. #REGION 1
  596. skipvar = .F.
  597. IF m.oksrch = 1 AND !EMPTY(m.srchterm)
  598.    m.srchterm = ALLTRIM(m.srchterm)
  599.    WAIT CLEAR
  600.  
  601.    m.tagnum = gettag(m.fldname)
  602.    IF m.tagnum > 0
  603.       SET ORDER TO TAG(m.tagnum)
  604.    ELSE
  605.       DO waitmsg   && warn user that this may take a while
  606.    ENDIF
  607.    m.thisrec = RECNO()
  608.    DO CASE
  609.    CASE TYPE("&fldname") $ "CM"     && character or memo field
  610.       IF m.tagnum > 0
  611.          SEEK ALLTRIM(m.srchterm)
  612.          IF !FOUND()
  613.             IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
  614.                GOTO m.thisrec
  615.             ENDIF
  616.             answer = .F.
  617.             DO doloc WITH m.srchterm, m.answer   && prompt for locate
  618.  
  619.             IF m.answer = .T.
  620.                DO waitmsg
  621.                GOTO TOP
  622.                LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
  623.             ENDIF
  624.          ENDIF
  625.       ELSE
  626.          LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
  627.       ENDIF
  628.    CASE TYPE("&fldname") $ "FN"     && floating or numeric
  629.       m.srchterm = CHRTRAN(m.srchterm,'"','')
  630.       m.srchterm = CHRTRAN(m.srchterm,"'","")
  631.       LOCATE FOR VAL(ALLTRIM(m.srchterm)) = &fldname
  632.    CASE TYPE("&fldname") = "D"      && date
  633.       m.srchterm = CHRTRAN(m.srchterm,'{}"()','')
  634.       m.srchterm = CHRTRAN(m.srchterm,"'",'')
  635.       m.srchterm = ALLTRIM(m.srchterm)
  636.       LOCATE FOR CTOD(srchterm) = &fldname
  637.    CASE TYPE("&fldname") = "L"      && logical
  638.       IF "T" $ UPPER(m.srchterm)
  639.          LOCATE FOR &fldname
  640.       ELSE
  641.          LOCATE FOR !&fldname
  642.       ENDIF
  643.    CASE TYPE("&fldname") = "U"      && unknown field type--should't happen
  644.       WAIT WINDOW "Field "+m.fldname+" not found"
  645.    ENDCASE
  646.    IF !FOUND()
  647.       SET CURSOR OFF
  648.       WAIT WINDOW "Not found" NOWAIT
  649.       IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
  650.          GOTO m.thisrec
  651.       ENDIF
  652.    ELSE
  653.       SET CURSOR OFF
  654.       WAIT WINDOW "Found it!" NOWAIT
  655.       CLEAR READ
  656.    ENDIF
  657. ELSE
  658.    SET ORDER TO (m.startord)
  659.    CLEAR READ
  660. ENDIF
  661.  
  662.  
  663. *       ╓─────────────────────────────────────────────────────────╖
  664. *       ║                                                         ║
  665. *       ║ _QNE1BYK44           Read Level Activate                ║
  666. *       ║                                                         ║
  667. *       ║ Function Origin:                                        ║
  668. *       ║                                                         ║
  669. *       ║                                                         ║
  670. *       ║ From Platform:       MS-DOS                             ║
  671. *       ║ From Screen:         APPSRCH                            ║
  672. *       ║ Called By:           READ Statement                     ║
  673. *       ║ Snippet Number:      4                                  ║
  674. *       ║                                                         ║
  675. *       ╙─────────────────────────────────────────────────────────╜
  676. *
  677. FUNCTION _qne1byk44     && Read Level Activate
  678. *
  679. * Activate Code from screen: APPSRCH
  680. *
  681. #REGION 1
  682. SELECT (m.startalias)
  683.  
  684.  
  685. *       ╓─────────────────────────────────────────────────────────╖
  686. *       ║                                                         ║
  687. *       ║ _QNE1BYK48           Read Level Deactivate              ║
  688. *       ║                                                         ║
  689. *       ║ Function Origin:                                        ║
  690. *       ║                                                         ║
  691. *       ║                                                         ║
  692. *       ║ From Platform:       MS-DOS                             ║
  693. *       ║ From Screen:         APPSRCH                            ║
  694. *       ║ Called By:           READ Statement                     ║
  695. *       ║ Snippet Number:      5                                  ║
  696. *       ║                                                         ║
  697. *       ╙─────────────────────────────────────────────────────────╜
  698. *
  699. FUNCTION _qne1byk48     && Read Level Deactivate
  700. *
  701. * Deactivate Code from screen: APPSRCH
  702. *
  703. #REGION 1
  704. ?? CHR(7)
  705. RETURN .F.
  706.  
  707.  
  708. *       ╓─────────────────────────────────────────────────────────╖
  709. *       ║                                                         ║
  710. *       ║ _QNE1BYL58           m.srchterm WHEN                    ║
  711. *       ║                                                         ║
  712. *       ║ Function Origin:                                        ║
  713. *       ║                                                         ║
  714. *       ║ From Platform:       Macintosh                          ║
  715. *       ║ From Screen:         APPSRCH,     Record Number:   17   ║
  716. *       ║ Variable:            m.srchterm                         ║
  717. *       ║ Called By:           WHEN Clause                        ║
  718. *       ║ Object Type:         Field                              ║
  719. *       ║ Snippet Number:      6                                  ║
  720. *       ║                                                         ║
  721. *       ╙─────────────────────────────────────────────────────────╜
  722. *
  723. FUNCTION _qne1byl58     &&  m.srchterm WHEN
  724. #REGION 1
  725. m.srchterm = PADR(m.srchterm,60)
  726. SHOW GETS
  727.  
  728.  
  729. *       ╓─────────────────────────────────────────────────────────╖
  730. *       ║                                                         ║
  731. *       ║ _QNE1BYLAL           fldnum VALID                       ║
  732. *       ║                                                         ║
  733. *       ║ Function Origin:                                        ║
  734. *       ║                                                         ║
  735. *       ║ From Platform:       Macintosh                          ║
  736. *       ║ From Screen:         APPSRCH,     Record Number:   18   ║
  737. *       ║ Variable:            fldnum                             ║
  738. *       ║ Called By:           VALID Clause                       ║
  739. *       ║ Object Type:         Popup                              ║
  740. *       ║ Snippet Number:      7                                  ║
  741. *       ║                                                         ║
  742. *       ╙─────────────────────────────────────────────────────────╜
  743. *
  744. FUNCTION _qne1bylal     &&  fldnum VALID
  745. #REGION 1
  746. m.fldname = FIELDS(m.fldnum)
  747. tagnum = gettag(m.fldname)     && tag number of tag with name fldname
  748.  
  749. IF tagnum > 0
  750.    SET ORDER TO TAG(m.tagnum)
  751. ELSE
  752.    SET ORDER TO 0
  753. ENDIF
  754. SHOW GETS
  755.  
  756.  
  757. *       ╓─────────────────────────────────────────────────────────╖
  758. *       ║                                                         ║
  759. *       ║ _QNE1BYLHA           oksrch VALID                       ║
  760. *       ║                                                         ║
  761. *       ║ Function Origin:                                        ║
  762. *       ║                                                         ║
  763. *       ║ From Platform:       Macintosh                          ║
  764. *       ║ From Screen:         APPSRCH,     Record Number:   19   ║
  765. *       ║ Variable:            oksrch                             ║
  766. *       ║ Called By:           VALID Clause                       ║
  767. *       ║ Object Type:         Push Button                        ║
  768. *       ║ Snippet Number:      8                                  ║
  769. *       ║                                                         ║
  770. *       ╙─────────────────────────────────────────────────────────╜
  771. *
  772. FUNCTION _qne1bylha     &&  oksrch VALID
  773. #REGION 1
  774. skipvar = .F.
  775. IF m.oksrch = 1 AND !EMPTY(m.srchterm)
  776.    m.srchterm = ALLTRIM(m.srchterm)
  777.    WAIT CLEAR
  778.  
  779.    m.tagnum = gettag(m.fldname)
  780.    IF m.tagnum > 0
  781.       SET ORDER TO TAG(m.tagnum)
  782.    ELSE
  783.       DO waitmsg   && warn user that this may take a while
  784.    ENDIF
  785.    m.thisrec = RECNO()
  786.    DO CASE
  787.    CASE TYPE("&fldname") $ "CM"     && character or memo field
  788.       IF m.tagnum > 0
  789.          SEEK ALLTRIM(m.srchterm)
  790.          IF !FOUND()
  791.             IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
  792.                GOTO m.thisrec
  793.             ENDIF
  794.             answer = .F.
  795.             DO doloc WITH m.srchterm, m.answer   && prompt for locate
  796.  
  797.             IF m.answer = .T.
  798.                DO waitmsg
  799.                GOTO TOP
  800.                LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
  801.             ENDIF
  802.          ENDIF
  803.       ELSE
  804.          LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
  805.       ENDIF
  806.    CASE TYPE("&fldname") $ "FN"     && floating or numeric
  807.       m.srchterm = CHRTRAN(m.srchterm,'"','')
  808.       m.srchterm = CHRTRAN(m.srchterm,"'","")
  809.       LOCATE FOR VAL(ALLTRIM(m.srchterm)) = &fldname
  810.    CASE TYPE("&fldname") = "D"      && date
  811.       m.srchterm = CHRTRAN(m.srchterm,'{}"()','')
  812.       m.srchterm = CHRTRAN(m.srchterm,"'",'')
  813.       m.srchterm = ALLTRIM(m.srchterm)
  814.       LOCATE FOR CTOD(srchterm) = &fldname
  815.    CASE TYPE("&fldname") = "L"      && logical
  816.       IF "T" $ UPPER(m.srchterm)
  817.          LOCATE FOR &fldname
  818.       ELSE
  819.          LOCATE FOR !&fldname
  820.       ENDIF
  821.    CASE TYPE("&fldname") = "U"      && unknown field type--should't happen
  822.       WAIT WINDOW "Field "+m.fldname+" not found"
  823.    ENDCASE
  824.    IF !FOUND()
  825.       SET CURSOR OFF
  826.       WAIT WINDOW "Not found" NOWAIT
  827.       IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
  828.          GOTO m.thisrec
  829.       ENDIF
  830.    ELSE
  831.       SET CURSOR OFF
  832.       WAIT WINDOW "Found it!" NOWAIT
  833.       CLEAR READ
  834.    ENDIF
  835. ELSE
  836.    SET ORDER TO (m.startord)
  837.    CLEAR READ
  838. ENDIF
  839.  
  840.  
  841. *       ╓─────────────────────────────────────────────────────────╖
  842. *       ║                                                         ║
  843. *       ║ _QNE1BYLYD           Read Level Activate                ║
  844. *       ║                                                         ║
  845. *       ║ Function Origin:                                        ║
  846. *       ║                                                         ║
  847. *       ║                                                         ║
  848. *       ║ From Platform:       Macintosh                          ║
  849. *       ║ From Screen:         APPSRCH                            ║
  850. *       ║ Called By:           READ Statement                     ║
  851. *       ║ Snippet Number:      9                                  ║
  852. *       ║                                                         ║
  853. *       ╙─────────────────────────────────────────────────────────╜
  854. *
  855. FUNCTION _qne1bylyd     && Read Level Activate
  856. *
  857. * Activate Code from screen: APPSRCH
  858. *
  859. #REGION 1
  860. SELECT (m.startalias)
  861.  
  862.  
  863. *       ╓─────────────────────────────────────────────────────────╖
  864. *       ║                                                         ║
  865. *       ║ _QNE1BYLYG           Read Level Deactivate              ║
  866. *       ║                                                         ║
  867. *       ║ Function Origin:                                        ║
  868. *       ║                                                         ║
  869. *       ║                                                         ║
  870. *       ║ From Platform:       Macintosh                          ║
  871. *       ║ From Screen:         APPSRCH                            ║
  872. *       ║ Called By:           READ Statement                     ║
  873. *       ║ Snippet Number:      10                                 ║
  874. *       ║                                                         ║
  875. *       ╙─────────────────────────────────────────────────────────╜
  876. *
  877. FUNCTION _qne1bylyg     && Read Level Deactivate
  878. *
  879. * Deactivate Code from screen: APPSRCH
  880. *
  881. #REGION 1
  882. ?? CHR(7)
  883. RETURN .F.
  884.  
  885.  
  886. *       ╓─────────────────────────────────────────────────────────╖
  887. *       ║                                                         ║
  888. *       ║ _QNE1BYNBU           m.srchterm WHEN                    ║
  889. *       ║                                                         ║
  890. *       ║ Function Origin:                                        ║
  891. *       ║                                                         ║
  892. *       ║ From Platform:       Windows                            ║
  893. *       ║ From Screen:         APPSRCH,     Record Number:    3   ║
  894. *       ║ Variable:            m.srchterm                         ║
  895. *       ║ Called By:           WHEN Clause                        ║
  896. *       ║ Object Type:         Field                              ║
  897. *       ║ Snippet Number:      11                                 ║
  898. *       ║                                                         ║
  899. *       ╙─────────────────────────────────────────────────────────╜
  900. *
  901. FUNCTION _qne1bynbu     &&  m.srchterm WHEN
  902. #REGION 1
  903. m.srchterm = PADR(m.srchterm,60)
  904. SHOW GETS
  905.  
  906.  
  907. *       ╓─────────────────────────────────────────────────────────╖
  908. *       ║                                                         ║
  909. *       ║ _QNE1BYNEA           fldnum VALID                       ║
  910. *       ║                                                         ║
  911. *       ║ Function Origin:                                        ║
  912. *       ║                                                         ║
  913. *       ║ From Platform:       Windows                            ║
  914. *       ║ From Screen:         APPSRCH,     Record Number:    4   ║
  915. *       ║ Variable:            fldnum                             ║
  916. *       ║ Called By:           VALID Clause                       ║
  917. *       ║ Object Type:         Popup                              ║
  918. *       ║ Snippet Number:      12                                 ║
  919. *       ║                                                         ║
  920. *       ╙─────────────────────────────────────────────────────────╜
  921. *
  922. FUNCTION _qne1bynea     &&  fldnum VALID
  923. #REGION 1
  924. m.fldname = FIELDS(m.fldnum)
  925. tagnum = gettag(m.fldname)     && tag number of tag with name fldname
  926.  
  927. IF tagnum > 0
  928.    SET ORDER TO TAG(m.tagnum)
  929. ELSE
  930.    SET ORDER TO 0
  931. ENDIF
  932. SHOW GETS
  933.  
  934.  
  935. *       ╓─────────────────────────────────────────────────────────╖
  936. *       ║                                                         ║
  937. *       ║ _QNE1BYNLF           oksrch VALID                       ║
  938. *       ║                                                         ║
  939. *       ║ Function Origin:                                        ║
  940. *       ║                                                         ║
  941. *       ║ From Platform:       Windows                            ║
  942. *       ║ From Screen:         APPSRCH,     Record Number:    5   ║
  943. *       ║ Variable:            oksrch                             ║
  944. *       ║ Called By:           VALID Clause                       ║
  945. *       ║ Object Type:         Push Button                        ║
  946. *       ║ Snippet Number:      13                                 ║
  947. *       ║                                                         ║
  948. *       ╙─────────────────────────────────────────────────────────╜
  949. *
  950. FUNCTION _qne1bynlf     &&  oksrch VALID
  951. #REGION 1
  952. skipvar = .F.
  953. IF m.oksrch = 1 AND !EMPTY(m.srchterm)
  954.    m.srchterm = ALLTRIM(m.srchterm)
  955.    WAIT CLEAR
  956.  
  957.    m.tagnum = gettag(m.fldname)
  958.    IF m.tagnum > 0
  959.       SET ORDER TO TAG(m.tagnum)
  960.    ELSE
  961.       DO waitmsg   && warn user that this may take a while
  962.    ENDIF
  963.    m.thisrec = RECNO()
  964.    DO CASE
  965.    CASE TYPE("&fldname") $ "CM"     && character or memo field
  966.       IF m.tagnum > 0
  967.          SEEK ALLTRIM(m.srchterm)
  968.          IF !FOUND()
  969.             IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
  970.                GOTO m.thisrec
  971.             ENDIF
  972.             answer = .F.
  973.             DO doloc WITH m.srchterm, m.answer   && prompt for locate
  974.  
  975.             IF m.answer = .T.
  976.                DO waitmsg
  977.                GOTO TOP
  978.                LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
  979.             ENDIF
  980.          ENDIF
  981.       ELSE
  982.          LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
  983.       ENDIF
  984.    CASE TYPE("&fldname") $ "FN"     && floating or numeric
  985.       m.srchterm = CHRTRAN(m.srchterm,'"','')
  986.       m.srchterm = CHRTRAN(m.srchterm,"'","")
  987.       LOCATE FOR VAL(ALLTRIM(m.srchterm)) = &fldname
  988.    CASE TYPE("&fldname") = "D"      && date
  989.       m.srchterm = CHRTRAN(m.srchterm,'{}"()','')
  990.       m.srchterm = CHRTRAN(m.srchterm,"'",'')
  991.       m.srchterm = ALLTRIM(m.srchterm)
  992.       LOCATE FOR CTOD(srchterm) = &fldname
  993.    CASE TYPE("&fldname") = "L"      && logical
  994.       IF "T" $ UPPER(m.srchterm)
  995.          LOCATE FOR &fldname
  996.       ELSE
  997.          LOCATE FOR !&fldname
  998.       ENDIF
  999.    CASE TYPE("&fldname") = "U"      && unknown field type--should't happen
  1000.       WAIT WINDOW "Field "+m.fldname+" not found"
  1001.    ENDCASE
  1002.    IF !FOUND()
  1003.       SET CURSOR OFF
  1004.       WAIT WINDOW "Not found" NOWAIT
  1005.       IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
  1006.          GOTO m.thisrec
  1007.       ENDIF
  1008.    ELSE
  1009.       SET CURSOR OFF
  1010.       WAIT WINDOW "Found it!" NOWAIT
  1011.       CLEAR READ
  1012.    ENDIF
  1013. ELSE
  1014.    SET ORDER TO (m.startord)
  1015.    CLEAR READ
  1016. ENDIF
  1017.  
  1018.  
  1019. *       ╓─────────────────────────────────────────────────────────╖
  1020. *       ║                                                         ║
  1021. *       ║ _QNE1BYO2L           Read Level Activate                ║
  1022. *       ║                                                         ║
  1023. *       ║ Function Origin:                                        ║
  1024. *       ║                                                         ║
  1025. *       ║                                                         ║
  1026. *       ║ From Platform:       Windows                            ║
  1027. *       ║ From Screen:         APPSRCH                            ║
  1028. *       ║ Called By:           READ Statement                     ║
  1029. *       ║ Snippet Number:      14                                 ║
  1030. *       ║                                                         ║
  1031. *       ╙─────────────────────────────────────────────────────────╜
  1032. *
  1033. FUNCTION _qne1byo2l     && Read Level Activate
  1034. *
  1035. * Activate Code from screen: APPSRCH
  1036. *
  1037. #REGION 1
  1038. SELECT (m.startalias)
  1039.  
  1040.  
  1041. *       ╓─────────────────────────────────────────────────────────╖
  1042. *       ║                                                         ║
  1043. *       ║ _QNE1BYO2Q           Read Level Deactivate              ║
  1044. *       ║                                                         ║
  1045. *       ║ Function Origin:                                        ║
  1046. *       ║                                                         ║
  1047. *       ║                                                         ║
  1048. *       ║ From Platform:       Windows                            ║
  1049. *       ║ From Screen:         APPSRCH                            ║
  1050. *       ║ Called By:           READ Statement                     ║
  1051. *       ║ Snippet Number:      15                                 ║
  1052. *       ║                                                         ║
  1053. *       ╙─────────────────────────────────────────────────────────╜
  1054. *
  1055. FUNCTION _qne1byo2q     && Read Level Deactivate
  1056. *
  1057. * Deactivate Code from screen: APPSRCH
  1058. *
  1059. #REGION 1
  1060. ?? CHR(7)
  1061. RETURN .F.
  1062.  
  1063.  
  1064.  
  1065. *       ╓─────────────────────────────────────────────────────────╖
  1066. *       ║                                                         ║
  1067. *       ║  APPSRCH/Windows Supporting Procedures and Functions    ║
  1068. *       ║                                                         ║
  1069. *       ╙─────────────────────────────────────────────────────────╜
  1070. *
  1071.  
  1072. #REGION 1
  1073. FUNCTION gettag
  1074. *) Returns tag number corresponding to field "fldname", or 0 if there
  1075. *) is not tag with the same name as "fldname."
  1076. parameter fldname
  1077. PRIVATE ALL
  1078. m.fldname = UPPER(ALLTRIM(m.fldname))
  1079. m.i = 1
  1080. DO WHILE !EMPTY(TAG(m.i)) AND m.i < 1000
  1081.    IF UPPER(TAG(m.i)) == m.fldname
  1082.       RETURN m.i
  1083.    ENDIF
  1084.    m.i = m.i + 1
  1085. ENDDO
  1086. RETURN 0
  1087.  
  1088.  
  1089. PROCEDURE waitmsg
  1090. IF RECCOUNT() > 1000
  1091.    WAIT WINDOW "Searching.  This may take a few moments." NOWAIT
  1092. ELSE
  1093.    WAIT WINDOW "Searching" NOWAIT
  1094. ENDIF
  1095.  
  1096.  
  1097.  
  1098. PROCEDURE doloc
  1099. PARAMETERS term, answer
  1100. * See if the user wants to do a long substring search
  1101.  
  1102. IF NOT WEXIST("doloc")
  1103.     IF _MAC
  1104.        DEFINE WINDOW doloc ;
  1105.       FROM INT((srow()-9)/2),INT((scol()-63)/2) ;
  1106.       TO INT((srow()-9)/2)+9,INT((scol()-63)/2)+61 ;
  1107.       TITLE "Searching Options" ;
  1108.       FLOAT ;
  1109.       NOCLOSE ;
  1110.       SHADOW ;
  1111.       DOUBLE
  1112.     ELSE
  1113.        DEFINE WINDOW doloc ;
  1114.       FROM INT((srow()-9)/2),INT((scol()-63)/2) ;
  1115.       TO INT((srow()-9)/2)+9,INT((scol()-63)/2)+61 ;
  1116.       TITLE "Searching Options" ;
  1117.       FLOAT ;
  1118.       NOCLOSE ;
  1119.       SHADOW ;
  1120.       DOUBLE ;
  1121.       COLOR SCHEME 5
  1122.    ENDIF
  1123. ENDIF
  1124.  
  1125. answer = .F.
  1126. ACTIVATE WINDOW doloc NOSHOW
  1127.  
  1128. @ 6,16 GET locok ;
  1129.    PICTURE "@*HT \!\<Search;\?\<Cancel" ;
  1130.    SIZE 1.769,12.0,4.0 ;
  1131.    DEFAULT 1
  1132. @ 1,1 SAY "FoxApp was not able to find a record matching your search"
  1133. @ 2,1 SAY "term while using a fast searching method.  Do you want to"
  1134. @ 3,1 SAY "search for the term with slower but more thorough methods?"
  1135.  
  1136. IF NOT WVISIBLE("doloc")
  1137.    ACTIVATE WINDOW doloc
  1138. ENDIF
  1139.  
  1140. READ CYCLE MODAL
  1141.  
  1142. RELEASE WINDOW doloc
  1143. answer = (locok = 1)
  1144.